package com.example.aviator;

import com.googlecode.aviator.AviatorEvaluator;

import java.util.HashMap;
import java.util.Map;

public class MainTest {

    public static void main(String[] args) {
        // 算数表达式
        Long sum = (Long) AviatorEvaluator.execute("1 + 2 + 3");
        System.out.println("算数表达式---" + sum);
        // 逻辑表达式
        Boolean result = (Boolean) AviatorEvaluator.execute("3 > 1");
        System.out.println("逻辑表达式---" + result);
        // 表达式传值
        Map<String, Object> env = new HashMap<>();
        env.put("name", "world");
        String str = "'hello ' + name";
        String r = (String) AviatorEvaluator.execute(str, env);
        System.out.println("表达式传值---" + r);
        // 三目运算符
        String r1 = (String) AviatorEvaluator.execute("100 > 80 ? 'yes' : 'no' ");
        System.out.println("三目运算符---" + r1);
        // 函数调用
        Object execute = AviatorEvaluator.execute("string.length('hello')");
        System.out.println("函数调用---" + execute.toString());
        // 调用自定义函数
        // 注册函数
        AviatorEvaluator.addFunction(new CustomFunction());
        // 调用函数
        System.out.println("add(2, 3) = " + AviatorEvaluator.execute("add(2, 3)"));
        // 移除函数
        AviatorEvaluator.removeFunction("multi");

    }
}
